//入口文件
import Vue from 'vue'

import VueRouter from 'vue-router'
Vue.use(VueRouter)

import vueResource from 'vue-resource'
Vue.use(vueResource)

// import { httpUrl } from './http_url.js'

// 全局设置 post 时候表单数据格式组织形式   application/x-www-form-urlencoded
Vue.http.options.emulateJSON = true;

// import { Header,Swipe, SwipeItem,Toast,Indicator,Loadmore,InfiniteScroll,Button,Lazyload  } from 'mint-ui'
// Vue.component (Header.name, Header)
// Vue.component(Swipe.name, Swipe)
// Vue.component(SwipeItem.name, SwipeItem)
// Vue.component(Loadmore.name, Loadmore)
// Vue.use (InfiniteScroll)
// Vue.component(Button.name, Button)
// Vue.component(Navbar.name, Navbar)
// Vue.component(TabItem.name, TabItem);
// Vue.use (Lazyload)
import MintUI from 'mint-ui'
Vue.use(MintUI)
import 'mint-ui/lib/style.css'

import './lib/mui/css/mui.css'
import './lib/mui/css/icons-extra.css'

import app from './App.vue'

import router from './router.js'

import VuePreview from 'vue-preview'
Vue.use(VuePreview)

import Vuex from 'vuex'
Vue.use(Vuex)
// 每次进入网站调用main.js,先从本地存储中，把购物车的数据读出来，放到 store 中
var car =JSON.parse(localStorage.getItem('car') || '[]')

var store = new Vuex.Store({
  state: {
    car: car
  },
  mutations: {
   // 点击加入购物车，把商品信息，保存到 store 中的 car 上
    addToCar(state, goodsinfo) {
      // 假设在购物车中，没有找到对应的商品
      var flag = false
      // 如果购物车里已经有这种商品了，则数量加一
      state.car.some(item => {
        if (item.id == goodsinfo.id) {
          item.count += parseInt(goodsinfo.count)
          flag = true
          return true
        }
      })
      // 如果购物车里已经没有这种商品了，在car[]添加一项
      if (!flag) {
        state.car.push(goodsinfo)
        flag = true
        console.log(goodsinfo.count);
      }
       // 当 更新 car 之后，把 car 数组，存储到 本地的 localStorage 中
      localStorage.setItem('car',JSON.stringify(state.car))
    },
  },
  getters: {
    // 获取订单总数
    getAllCount(state) {
      var counts = 0;
      state.car.forEach(item => {
        counts += parseInt(item.count)
      })
      return counts;
    },
    // 获取订单的总价和活动省掉的价格
    getTotalPrice(state) {
      var value ={
        count: 0,
        totalPrice: 0,
        priceB: 0,
        discountPrice: 0,
      }
      state.car.forEach(item2=>{
        value.count += item2.count
        value.totalPrice += item2.count*parseInt(item2.priceNew)
        value.priceB += item2.count*parseInt(item2.priceBefore)
      })
      value.discountPrice = parseInt(value.priceB - value.totalPrice)
      return value
    }
  }
})

var vm = new Vue({
  el: "#app",
  render: c => c(app),
  router,
  store
})